// 基于Dio二次封装
import 'package:dio/dio.dart'; // 导入dio库发起网络请求

class HttpsClient {
  static Dio dio = Dio(); // 创建dio实例并挂载到HttpsClient全局
  static String baseUrl = "https://miapp.itying.com/";

  HttpsClient() {
    dio.options.baseUrl = baseUrl; // 设置dio实例的基地址
    dio.options.connectTimeout = const Duration(
      milliseconds: 5000,
    ); // 设置dio实例的连接超时时间
    dio.options.receiveTimeout = const Duration(
      milliseconds: 5000,
    ); // 设置dio实例的接收超时时间
  }

  // get请求
  Future get(String apiUrl) async {
    try {
      var response = await dio.get(baseUrl + apiUrl);
      return response.data; // 在 Dio 中，响应数据通常存储在 response.data
    } catch (e) {
      print("请求出错==>${e}");
      return null;
    }
  } 

  // post请求
  Future post(String apiUrl, {Map? data}) async {
    try {
      var response = await dio.post(baseUrl + apiUrl , data: data);
      return response.data; // 在 Dio 中，响应数据通常存储在 response.data
    } catch (e) {
      print("请求出错==>${e}");
      return null;
    }
  } 

  // 后台返回图片地址处理
  // 因为后台返回的路径地址中包含'\'，而Dart中的字符串不支持'\'，所以需要替换为'/'
  static String getImgUrl(String imgUrl) {
    String tempUrl = baseUrl + imgUrl;
    String targetUrl = tempUrl.replaceAll("\\", "/"); // 替换掉字符串中的反斜杠
    return targetUrl;
  }
}
